/*
 * Metodo.h
 *
 *  Created on: 01/03/2012
 *      Author: JENNIFER
 */

#ifndef METODO_H_
#define METODO_H_

#include <vector>
#include <fstream>
#include "Parametro.h"
#include "Identificador.h"

using namespace std;

class Metodo {
private:
	string nombre;
	string tipoRetorno;
	ModificadorAcceso nivelAcceso;
	vector<Parametro> parametros;
	string cuerpo;
public:
	Metodo();
	Metodo(string nombre, ModificadorAcceso nivelAcceso, string tipoRetorno="void");
	virtual ~Metodo();
	string getNombre();
	void setNombre(string nombre);
	ModificadorAcceso getNivelAcceso();
	void setNivelAcceso(ModificadorAcceso nivelAcceso);
	vector<Parametro> getParametros();
	void setParametros(vector<Parametro> parametros);
	string getTipoRetorno();
	void setTipoRetorno(string tipoRetorno);
	int cantParametros();
	void agregarParametro(Parametro parametro);
	void eliminarParametro(int posicion);
	Parametro obtenerParametro(int posicion);
	void escribirMetodo(ofstream archivo);
	void setCuerpo(string cuerpo);
	string getCuerpo();
};

#endif /* METODO_H_ */
